package com.workcell.workdata.xthings.config;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;

import java.time.LocalDate;

/**
 * @Author 廖博文
 * @Date 2022/11/23 15:35
 * @Description 动态表名工具类
 */
public class DynamicTableUtils {

    public final static String POWER_METER_TABLE_NAME = "t_power_meter_data";

    /**
     * 获取昨日电压表数据表名
     *
     * @return 日电压表数据表名
     */
    public static String getPowerMeterYesterdayTableName() {
        return getPowerMeterTableByDate(LocalDate.now().plusDays(-1));
    }

    /**
     * 获取今日电压表数据表名
     *
     * @return 日电压表数据表名
     */
    public static String getPowerMeterTodayTableName() {
        return getPowerMeterTableByDate(LocalDate.now());
    }

    /**
     * 获取明日电压表数据表名
     *
     * @return 明日电压表数据表名
     */
    public static String getPowerMeterTomorrowTableName() {
        return getPowerMeterTableByDate(LocalDate.now().plusDays(1));
    }

    /**
     * 根据日期获取电压表数据表名
     *
     * @param localDate 日期
     * @return 电压表表名
     */
    private static String getPowerMeterTableByDate(LocalDate localDate) {
        Assert.notNull(localDate, "日期不能为空");
        String localDateformat = localDate.format(DatePattern.PURE_DATE_FORMATTER);
        return StrUtil.format("{}_{}", POWER_METER_TABLE_NAME, localDateformat);
    }

}
